

#include "precomp.h"

#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
    #pragma implementation "stedlgs_wdr.h"
#endif

#include "wx/wxprec.h"

#ifdef __BORLANDC__
    #pragma hdrstop
#endif

#include "stedlgs_wdr.h"

#include <wx/intl.h>


wxSizer *wxSTEditorStyleSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxFlexGridSizer *item0 = new wxFlexGridSizer( 1, 0, 0 );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, _("Highlighting and other styles") );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxVERTICAL );

    wxFlexGridSizer *item3 = new wxFlexGridSizer( 1, 0, 0 );

    wxNotebook *item5 = new wxNotebook( parent, ID_STEDLG_STYLE_NOTEBOOK, wxDefaultPosition, wxSize(200,160), 0 );
wxWindow *item4 = item5;

    item3->Add( item4, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );

    wxString strs6[] = 
    {
        _("ChoiceItem"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item")
    };
    wxChoice *item6 = new wxChoice( parent, ID_STEDLG_STYLELANG_CHOICE, wxDefaultPosition, wxDefaultSize, 7, strs6, 0 );
    item3->Add( item6, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );

    wxStaticLine *item7 = new wxStaticLine( parent, ID_LINE, wxDefaultPosition, wxSize(20,-1), wxLI_HORIZONTAL );
    item3->Add( item7, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );

    wxFlexGridSizer *item8 = new wxFlexGridSizer( 2, 0, 0 );

    wxCheckBox *item9 = new wxCheckBox( parent, ID_STEDLG_FONT_CHECKBOX, _("Font"), wxDefaultPosition, wxDefaultSize, 0 );
    item9->SetToolTip( _("Set non default font for style") );
    item8->Add( item9, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxFlexGridSizer *item10 = new wxFlexGridSizer( 4, 0, 0 );

    wxButton *item11 = new wxButton( parent, ID_STEDLG_FONT_BUTTON, _("Font"), wxDefaultPosition, wxDefaultSize, 0 );
    item11->SetToolTip( _("Choose a font (unsupported fonts revert to a default)") );
    item10->Add( item11, 0, wxALIGN_CENTER|wxALL, 5 );

    wxString strs12[] = 
    {
        _("Bitstream Vera Sans Mono*"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item")
    };
    wxChoice *item12 = new wxChoice( parent, ID_STEDLG_FONT_CHOICE, wxDefaultPosition, wxDefaultSize, 11, strs12, 0 );
    item12->SetToolTip( _("Typical fonts (* are known to be fixed width)") );
    item10->Add( item12, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );

    item10->AddGrowableCol( 1 );

    item8->Add( item10, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 0 );

    wxCheckBox *item13 = new wxCheckBox( parent, ID_STEDLG_FONTSIZE_CHECKBOX, _("Font Size"), wxDefaultPosition, wxDefaultSize, 0 );
    item13->SetToolTip( _("Set non default font size for style") );
    item8->Add( item13, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxSpinCtrl *item14 = new wxSpinCtrl( parent, ID_STEDLG_FONTSIZE_SPINCTRL, wxT("12"), wxDefaultPosition, wxSize(75,-1), wxSP_ARROW_KEYS, 4, 48, 12 );
    item14->SetToolTip( _("Select font size in points") );
    item8->Add( item14, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    wxCheckBox *item15 = new wxCheckBox( parent, ID_STEDLG_ATTRIBUTES_CHECKBOX, _("Attributes"), wxDefaultPosition, wxDefaultSize, 0 );
    item15->SetToolTip( _("Set non default attributes for style") );
    item8->Add( item15, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxBoxSizer *item16 = new wxBoxSizer( wxHORIZONTAL );

    wxCheckBox *item17 = new wxCheckBox( parent, ID_STEDLG_BOLD_CHECKBOX, _("Bold"), wxDefaultPosition, wxDefaultSize, 0 );
    item17->SetToolTip( _("Font is bold") );
    item16->Add( item17, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item18 = new wxCheckBox( parent, ID_STEDLG_ITALICS_CHECKBOX, _("Italics"), wxDefaultPosition, wxDefaultSize, 0 );
    item18->SetToolTip( _("Font is italics") );
    item16->Add( item18, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item19 = new wxCheckBox( parent, ID_STEDLG_UNDERLINE_CHECKBOX, _("Underlined"), wxDefaultPosition, wxDefaultSize, 0 );
    item19->SetToolTip( _("Font is underlined") );
    item16->Add( item19, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item20 = new wxCheckBox( parent, ID_STEDLG_EOLFILL_CHECKBOX, _("EOL Fill"), wxDefaultPosition, wxDefaultSize, 0 );
    item20->SetToolTip( _("Fill background to end of line (unclosed strings)") );
    item16->Add( item20, 0, wxALIGN_CENTER|wxALL, 5 );

    item8->Add( item16, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 0 );

    wxCheckBox *item21 = new wxCheckBox( parent, ID_STEDLG_FONTFORE_CHECKBOX, _("Foreground color"), wxDefaultPosition, wxDefaultSize, 0 );
    item21->SetToolTip( _("Set non default foreground colour") );
    item8->Add( item21, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxButton *item22 = new wxButton( parent, ID_STEDLG_FONTFORE_BUTTON, _("Fore Color"), wxDefaultPosition, wxDefaultSize, 0 );
    item22->SetToolTip( _("Choose foreground color") );
    item8->Add( item22, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item23 = new wxCheckBox( parent, ID_STEDLG_FONTBACK_CHECKBOX, _("Background color"), wxDefaultPosition, wxDefaultSize, 0 );
    item23->SetToolTip( _("Set non default background colour") );
    item8->Add( item23, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    wxButton *item24 = new wxButton( parent, ID_STEDLG_FONTBACK_BUTTON, _("Back Color"), wxDefaultPosition, wxDefaultSize, 0 );
    item24->SetToolTip( _("Choose background color") );
    item8->Add( item24, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    item3->Add( item8, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 0 );

    item3->AddGrowableCol( 0 );

    item3->AddGrowableRow( 0 );

    item1->Add( item3, 1, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item0->AddGrowableCol( 0 );

    item0->AddGrowableRow( 0 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorLangSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxFlexGridSizer *item0 = new wxFlexGridSizer( 1, 0, 0 );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, _("Language settings") );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxVERTICAL );

    wxFlexGridSizer *item3 = new wxFlexGridSizer( 2, 0, 0 );

    wxStaticText *item4 = new wxStaticText( parent, ID_TEXT, _("Language"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxString strs5[] = 
    {
        _("ChoiceItem"), 
        _("ACTIVE SERVER PAGES (ASP) BLAH"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item")
    };
    wxChoice *item5 = new wxChoice( parent, ID_STEDLG_LANG_CHOICE, wxDefaultPosition, wxDefaultSize, 18, strs5, 0 );
    item5->SetToolTip( _("Choose the language (lexer) to syntax highlight document") );
    item3->Add( item5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxStaticText *item6 = new wxStaticText( parent, ID_TEXT, _("File patterns"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxTextCtrl *item7 = new wxTextCtrl( parent, ID_STEDLG_FILEPATTERN_TEXTCTRL, wxT(""), wxDefaultPosition, wxDefaultSize, 0 );
    item7->SetToolTip( _("File extensions associated with this language (*.cpp;*.c;*.h)") );
    item3->Add( item7, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item3->AddGrowableCol( 1 );

    item1->Add( item3, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxNotebook *item9 = new wxNotebook( parent, ID_STEDLG_LANG_NOTEBOOK, wxDefaultPosition, wxSize(200,160), 0 );
wxWindow *item8 = item9;

    item1->Add( item8, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP, 5 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item0->AddGrowableCol( 0 );

    item0->AddGrowableRow( 0 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorPropertiesSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, _("File properties") );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxVERTICAL );

    wxFlexGridSizer *item3 = new wxFlexGridSizer( 3, 5, 5 );

    wxStaticText *item4 = new wxStaticText( parent, wxID_ANY, _("Filename"), wxDefaultPosition, wxDefaultSize, 0 );
    item4->SetToolTip( _("Name of the document or filename") );
    item3->Add( item4, 0, wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item5 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item5, 0, wxALIGN_CENTER, 5 );

    wxTextCtrl *item6 = new wxTextCtrl( parent, ID_STEPROP_FILENAME_TEXTCTRL, _("path/to/the/file/and/stuff/untitled.txt"), wxDefaultPosition, wxSize(300,-1), wxTE_READONLY );
    item3->Add( item6, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item7 = new wxStaticText( parent, wxID_ANY, _("Size"), wxDefaultPosition, wxDefaultSize, 0 );
    item7->SetToolTip( _("Size of the file on disk if it exists") );
    item3->Add( item7, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item8 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item8, 0, wxALIGN_CENTER, 5 );

    wxStaticText *item9 = new wxStaticText( parent, ID_STEPROP_FILESIZE_TEXT, _("100000000000000000000000000000000 bytes"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item9, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item10 = new wxStaticText( parent, wxID_ANY, _("Opened"), wxDefaultPosition, wxDefaultSize, 0 );
    item10->SetToolTip( _("Time the file was opened from disk") );
    item3->Add( item10, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item11 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item11, 0, wxALIGN_CENTER, 5 );

    wxStaticText *item12 = new wxStaticText( parent, ID_STEPROP_FILEOPENED_TEXT, _("12/12/2003 00:00:00 000000000000000000000"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item12, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item13 = new wxStaticText( parent, wxID_ANY, _("Modified"), wxDefaultPosition, wxDefaultSize, 0 );
    item13->SetToolTip( _("Last time the file was modified on disk") );
    item3->Add( item13, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item14 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item14, 0, wxALIGN_CENTER, 5 );

    wxStaticText *item15 = new wxStaticText( parent, ID_STEPROP_FILEMODIFIED_TEXT, _("12/12/2003 00:00:00 000000000000000000000"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item15, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item16 = new wxStaticText( parent, wxID_ANY, _("Accessed"), wxDefaultPosition, wxDefaultSize, 0 );
    item16->SetToolTip( _("Last time the file was accessed on disk (not all platforms support this)") );
    item3->Add( item16, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item17 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item17, 0, wxALIGN_CENTER, 5 );

    wxStaticText *item18 = new wxStaticText( parent, ID_STEPROP_FILEACCESSED_TEXT, _("12/12/2003 00:00:00 000000000000000000000"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item18, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item19 = new wxStaticText( parent, wxID_ANY, _("Created"), wxDefaultPosition, wxDefaultSize, 0 );
    item19->SetToolTip( _("Time the file was created on disk (not all platforms support this)") );
    item3->Add( item19, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item20 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item20, 0, wxALIGN_CENTER, 5 );

    wxStaticText *item21 = new wxStaticText( parent, ID_STEPROP_FILECREATED_TEXT, _("12/12/2003 00:00:00 000000000000000000000"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item21, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item22 = new wxStaticText( parent, wxID_ANY, _("File Type"), wxDefaultPosition, wxDefaultSize, 0 );
    item22->SetToolTip( _("Time the file was created on disk (not all platforms support this)") );
    item3->Add( item22, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item23 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item23, 0, wxALIGN_CENTER, 5 );

    wxStaticText *item24 = new wxStaticText( parent, ID_STEPROP_FILE_TYPE_TEXT, _("<mime type>"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item24, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item3->AddGrowableCol( 2 );

    item1->Add( item3, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxStaticBox *item26 = new wxStaticBox( parent, -1, _("Information") );
    wxStaticBoxSizer *item25 = new wxStaticBoxSizer( item26, wxVERTICAL );

    wxFlexGridSizer *item27 = new wxFlexGridSizer( 3, 5, 5 );

    wxStaticText *item28 = new wxStaticText( parent, wxID_ANY, _("Language"), wxDefaultPosition, wxDefaultSize, 0 );
    item28->SetToolTip( _("The language used to hilight the document") );
    item27->Add( item28, 0, wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item29 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item27->Add( item29, 0, wxALIGN_CENTER, 5 );

    wxStaticText *item30 = new wxStaticText( parent, ID_STEPROP_LANGUAGE_TEXT, _("Some language name that has some name like this"), wxDefaultPosition, wxDefaultSize, 0 );
    item27->Add( item30, 0, wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item31 = new wxStaticText( parent, wxID_ANY, _("Encoding"), wxDefaultPosition, wxDefaultSize, 0 );
    item31->SetToolTip( _("The language used to hilight the document") );
    item27->Add( item31, 0, wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item32 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item27->Add( item32, 0, wxALIGN_CENTER, 5 );

    wxBoxSizer *item33 = new wxBoxSizer( wxHORIZONTAL );

    wxString *strs34 = (wxString*) NULL;
    wxChoice *item34 = new wxChoice( parent, ID_STEPROP_ENCODING_CHOICE, wxDefaultPosition, wxDefaultSize, 0, strs34, 0 );
    item33->Add( item34, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxCheckBox *item35 = new wxCheckBox( parent, ID_STEPROP_ENCODING_BOM_CHECKBOX, _("BOM"), wxDefaultPosition, wxDefaultSize, 0 );
    item33->Add( item35, 0, wxALIGN_CENTER|wxLEFT, 5 );

    item27->Add( item33, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item27->AddGrowableCol( 2 );

    item25->Add( item27, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item0->Add( item25, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    wxStaticBox *item37 = new wxStaticBox( parent, -1, _("Document Statistics") );
    wxStaticBoxSizer *item36 = new wxStaticBoxSizer( item37, wxVERTICAL );

    wxFlexGridSizer *item38 = new wxFlexGridSizer( 3, 5, 5 );

    wxStaticText *item39 = new wxStaticText( parent, wxID_ANY, _("Lines"), wxDefaultPosition, wxDefaultSize, 0 );
    item39->SetToolTip( _("Number of lines in the document") );
    item38->Add( item39, 0, wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item40 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item38->Add( item40, 0, wxALIGN_CENTER, 5 );

    wxStaticText *item41 = new wxStaticText( parent, ID_STEPROP_NUMLINES_TEXT, _("10000000000000000000000000000000000000"), wxDefaultPosition, wxDefaultSize, 0 );
    item38->Add( item41, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item42 = new wxStaticText( parent, wxID_ANY, _("Characters"), wxDefaultPosition, wxDefaultSize, 0 );
    item42->SetToolTip( _("Number of characters in the document (size)") );
    item38->Add( item42, 0, wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item43 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item38->Add( item43, 0, wxALIGN_CENTER, 5 );

    wxStaticText *item44 = new wxStaticText( parent, ID_STEPROP_NUMCHARS_TEXT, _("10000000000000000000000000000000000000"), wxDefaultPosition, wxDefaultSize, 0 );
    item38->Add( item44, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item45 = new wxStaticText( parent, wxID_ANY, _("Words"), wxDefaultPosition, wxDefaultSize, 0 );
    item45->SetToolTip( _("Number of words in the document") );
    item38->Add( item45, 0, wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item46 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item38->Add( item46, 0, wxALIGN_CENTER, 5 );

    wxStaticText *item47 = new wxStaticText( parent, ID_STEPROP_NUMWORDS_TEXT, _("10000000000000000000000000000000000000"), wxDefaultPosition, wxDefaultSize, 0 );
    item38->Add( item47, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item48 = new wxStaticText( parent, wxID_ANY, _("Tabs"), wxDefaultPosition, wxDefaultSize, 0 );
    item48->SetToolTip( _("Number of tab characters in the document") );
    item38->Add( item48, 0, wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item49 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item38->Add( item49, 0, wxALIGN_CENTER, 5 );

    wxStaticText *item50 = new wxStaticText( parent, ID_STEPROP_NUMTABS_TEXT, _("10000000000000000000000000000000000000"), wxDefaultPosition, wxDefaultSize, 0 );
    item38->Add( item50, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item51 = new wxStaticText( parent, wxID_ANY, _("EOL Characters"), wxDefaultPosition, wxDefaultSize, 0 );
    item51->SetToolTip( _("Number and types of end of line characters") );
    item38->Add( item51, 0, wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticText *item52 = new wxStaticText( parent, wxID_ANY, _(":"), wxDefaultPosition, wxDefaultSize, 0 );
    item38->Add( item52, 0, wxALIGN_CENTER, 5 );

    wxStaticText *item53 = new wxStaticText( parent, ID_STEPROP_EOLCHARS_TEXT, _("CRLF (DOS/Win)=100000, CR (Mac)=100000, LF (Unix)=100000 "), wxDefaultPosition, wxDefaultSize, 0 );
    item38->Add( item53, 0, wxALIGN_CENTER_VERTICAL, 5 );

    item38->AddGrowableCol( 2 );

    item36->Add( item38, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item0->Add( item36, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorFindReplaceSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxFlexGridSizer *item0 = new wxFlexGridSizer( 1, 0, 0 );

    wxFlexGridSizer *item1 = new wxFlexGridSizer( 2, 0, 0 );

    wxFlexGridSizer *item2 = new wxFlexGridSizer( 1, 0, 0 );

    wxFlexGridSizer *item3 = new wxFlexGridSizer( 3, 3, 0 );

    wxStaticText *item4 = new wxStaticText( parent, ID_TEXT, _("Find what"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item4, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5 );

    wxString strs5[] = 
    {
        _("ComboItem"), 
        _("Item1"), 
        _("Item2"), 
        _("Item3"), 
        _("Item4"), 
        _("Item5"), 
        _("Item6"), 
        _("Item7"), 
        _("Item8"), 
        _("Item9"), 
        _("Item0")
    };
    wxComboBox *item5 = new wxComboBox( parent, ID_STEDLG_FIND_COMBO, wxT(""), wxDefaultPosition, wxSize(250,-1), 11, strs5, wxCB_DROPDOWN );
    item3->Add( item5, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxBitmapButton *item6 = new wxBitmapButton( parent, ID_STEDLG_FIND_BITMAPBUTTON, wxSTEBitmapsFunc( 1 ), wxDefaultPosition, wxDefaultSize );
    item3->Add( item6, 0, wxGROW|wxALIGN_CENTER_HORIZONTAL|wxLEFT, 5 );

    wxStaticText *item7 = new wxStaticText( parent, ID_STEDLG_REPLACE_TEXT, _("Replace with "), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item7, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5 );

    wxString strs8[] = 
    {
        _("ComboItem"), 
        _("Item1"), 
        _("Item2"), 
        _("Item3"), 
        _("Item4"), 
        _("Item5"), 
        _("Item6"), 
        _("Item7"), 
        _("Item8"), 
        _("Item9"), 
        _("Item0")
    };
    wxComboBox *item8 = new wxComboBox( parent, ID_STEDLG_REPLACE_COMBO, wxT(""), wxDefaultPosition, wxSize(250,-1), 11, strs8, wxCB_DROPDOWN );
    item3->Add( item8, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxBitmapButton *item9 = new wxBitmapButton( parent, ID_STEDLG_REPLACE_BITMAPBUTTON, wxSTEBitmapsFunc( 1 ), wxDefaultPosition, wxDefaultSize );
    item3->Add( item9, 0, wxGROW|wxALIGN_CENTER_HORIZONTAL|wxLEFT, 5 );

    item3->AddGrowableCol( 1 );

    item2->Add( item3, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxFlexGridSizer *item10 = new wxFlexGridSizer( 4, 0, 0 );

    wxStaticBox *item12 = new wxStaticBox( parent, -1, _("Options") );
    wxStaticBoxSizer *item11 = new wxStaticBoxSizer( item12, wxVERTICAL );

    wxFlexGridSizer *item13 = new wxFlexGridSizer( 2, 0, 0 );

    wxCheckBox *item14 = new wxCheckBox( parent, ID_STEDLG_WHOLEWORD_CHECKBOX, _("&Whole word"), wxDefaultPosition, wxDefaultSize, 0 );
    item14->SetToolTip( _("Find string must be a whole word") );
    item13->Add( item14, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 5 );

    wxCheckBox *item15 = new wxCheckBox( parent, ID_STEDLG_BACKWARDS_CHECKBOX, _("&Backwards"), wxDefaultPosition, wxDefaultSize, 0 );
    item15->SetToolTip( _("Search from the bottom to the top of the document") );
    item13->Add( item15, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 5 );

    wxCheckBox *item16 = new wxCheckBox( parent, ID_STEDLG_MATCHCASE_CHECKBOX, _("Match &case"), wxDefaultPosition, wxDefaultSize, 0 );
    item16->SetToolTip( _("Case sensitive finding") );
    item13->Add( item16, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 5 );

    wxCheckBox *item17 = new wxCheckBox( parent, ID_STEDLG_WRAP_CHECKBOX, _("Wra&p around"), wxDefaultPosition, wxDefaultSize, 0 );
    item17->SetToolTip( _("Wrap search to continue searching at the top") );
    item13->Add( item17, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 5 );

    wxCheckBox *item18 = new wxCheckBox( parent, ID_STEDLG_WORDSTART_CHECKBOX, _("Word &start"), wxDefaultPosition, wxDefaultSize, 0 );
    item18->SetToolTip( _("Find string only if it's the start of a word") );
    item13->Add( item18, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 5 );

    wxCheckBox *item19 = new wxCheckBox( parent, ID_STEDLG_REGEXP_FIND_CHECKBOX, _("Rege&xpr find"), wxDefaultPosition, wxDefaultSize, 0 );
    item19->SetToolTip( _("Use a regular expression to search for a string") );
    item13->Add( item19, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 5 );

    wxCheckBox *item20 = new wxCheckBox( parent, ID_STEDLG_FINDALL_CHECKBOX, _("Find all"), wxDefaultPosition, wxDefaultSize, 0 );
    item20->SetToolTip( _("Find all occurances of the string") );
    item13->Add( item20, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 5 );

    wxCheckBox *item21 = new wxCheckBox( parent, ID_STEDLG_BOOKMARKALL_CHECKBOX, _("Bookmark all"), wxDefaultPosition, wxDefaultSize, 0 );
    item21->SetToolTip( _("Bookmark every occurance of find string") );
    item13->Add( item21, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 5 );

    item11->Add( item13, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item10->Add( item11, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    wxStaticBox *item23 = new wxStaticBox( parent, -1, _("Scope") );
    wxStaticBoxSizer *item22 = new wxStaticBoxSizer( item23, wxVERTICAL );

    wxRadioButton *item24 = new wxRadioButton( parent, ID_STEDLG_SCOPEWHOLE_RADIOBUTTON, _("Whole &document "), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
    item24->SetValue( TRUE );
    item24->SetToolTip( _("Search starts at the top of the document") );
    item22->Add( item24, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );

    wxRadioButton *item25 = new wxRadioButton( parent, ID_STEDLG_SCOPECURSOR_RADIOBUTTON, _("From c&ursor "), wxDefaultPosition, wxDefaultSize, 0 );
    item25->SetToolTip( _("Search starts at current cursor location") );
    item22->Add( item25, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );

    wxRadioButton *item26 = new wxRadioButton( parent, ID_STEDLG_SCOPEALLDOCS_RADIOBUTTON, _("A&ll documents "), wxDefaultPosition, wxDefaultSize, 0 );
    item26->SetToolTip( _("Search through all the open documents") );
    item22->Add( item26, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );

    item10->Add( item22, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxBOTTOM, 5 );

    item10->AddGrowableCol( 1 );

    item2->Add( item10, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item2->AddGrowableCol( 0 );

    item1->Add( item2, 0, wxGROW, 5 );

    wxFlexGridSizer *item27 = new wxFlexGridSizer( 1, 0, 0 );

    wxButton *item28 = new wxButton( parent, ID_STEDLG_FIND_BUTTON, _("&Find"), wxDefaultPosition, wxDefaultSize, 0 );
    item28->SetDefault();
    item27->Add( item28, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    wxBoxSizer *item29 = new wxBoxSizer( wxVERTICAL );

    wxButton *item30 = new wxButton( parent, ID_STEDLG_REPLACE_BUTTON, _("R&eplace"), wxDefaultPosition, wxDefaultSize, 0 );
    item29->Add( item30, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxButton *item31 = new wxButton( parent, ID_STEDLG_REPLACEFIND_BUTTON, _("&Replace && Find"), wxDefaultPosition, wxDefaultSize, 0 );
    item31->SetToolTip( _("Replace string and find next occurance") );
    item29->Add( item31, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    wxButton *item32 = new wxButton( parent, ID_STEDLG_REPLACEALL_BUTTON, _("Replace &All"), wxDefaultPosition, wxDefaultSize, 0 );
    item29->Add( item32, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );

    item27->Add( item29, 0, wxALIGN_CENTER, 5 );

    item27->Add( 10, 10, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxButton *item33 = new wxButton( parent, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
    item27->Add( item33, 1, wxGROW|wxALIGN_BOTTOM|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    item27->AddGrowableRow( 2 );

    item1->Add( item27, 0, wxGROW|wxTOP, 5 );

    item1->AddGrowableCol( 0 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item0->AddGrowableCol( 0 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorInsertTextSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxBoxSizer *item1 = new wxBoxSizer( wxHORIZONTAL );

    wxRadioButton *item2 = new wxRadioButton( parent, ID_STEDLG_INSERT_PREPEND_RADIOBUTTON, _("Prepend"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
    item1->Add( item2, 0, wxALIGN_CENTER|wxALL, 5 );

    wxRadioButton *item3 = new wxRadioButton( parent, ID_STEDLG_INSERT_APPEND_RADIOBUTTON, _("Append"), wxDefaultPosition, wxDefaultSize, 0 );
    item1->Add( item3, 0, wxALIGN_CENTER|wxALL, 5 );

    wxRadioButton *item4 = new wxRadioButton( parent, ID_STEDLG_INSERT_ATCOLUMN_RADIOBUTTON, _("At Column"), wxDefaultPosition, wxDefaultSize, 0 );
    item1->Add( item4, 0, wxALIGN_CENTER|wxALL, 5 );

    wxSpinCtrl *item5 = new wxSpinCtrl( parent, ID_STEDLG_INSERT_COLUMN_SPINCTRL, wxT("1"), wxDefaultPosition, wxSize(100,-1), wxSP_ARROW_KEYS, 1, 1000, 1 );
    item1->Add( item5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxRadioButton *item6 = new wxRadioButton( parent, ID_STEDLG_INSERT_SURROUND_RADIOBUTTON, _("Surround selection"), wxDefaultPosition, wxDefaultSize, 0 );
    item1->Add( item6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxFlexGridSizer *item7 = new wxFlexGridSizer( 3, 5, 5 );

    wxStaticText *item8 = new wxStaticText( parent, ID_STEDLG_INSERT_PREPEND_TEXT, _("Prepend"), wxDefaultPosition, wxDefaultSize, 0 );
    item7->Add( item8, 0, wxALIGN_CENTER_VERTICAL, 5 );

    wxString strs9[] = 
    {
        _("ComboItem"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item")
    };
    wxComboBox *item9 = new wxComboBox( parent, ID_STEDLG_INSERT_PREPEND_COMBO, wxT(""), wxDefaultPosition, wxSize(100,-1), 6, strs9, wxCB_DROPDOWN );
    item9->SetToolTip( _("Text to prepend") );
    item7->Add( item9, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxBitmapButton *item10 = new wxBitmapButton( parent, ID_STEDLG_INSERT_PREPEND_BITMAPBUTTON, wxSTEBitmapsFunc( 1 ), wxDefaultPosition, wxDefaultSize );
    item7->Add( item10, 0, wxGROW|wxALIGN_CENTER_HORIZONTAL, 5 );

    wxStaticText *item11 = new wxStaticText( parent, wxID_ANY, _("Append"), wxDefaultPosition, wxDefaultSize, 0 );
    item7->Add( item11, 0, wxALIGN_CENTER_VERTICAL, 5 );

    wxString strs12[] = 
    {
        _("ComboItem"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item")
    };
    wxComboBox *item12 = new wxComboBox( parent, ID_STEDLG_INSERT_APPEND_COMBO, wxT(""), wxDefaultPosition, wxSize(100,-1), 6, strs12, wxCB_DROPDOWN );
    item12->SetToolTip( _("Text to append") );
    item7->Add( item12, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxBitmapButton *item13 = new wxBitmapButton( parent, ID_STEDLG_INSERT_APPEND_BITMAPBUTTON, wxSTEBitmapsFunc( 1 ), wxDefaultPosition, wxDefaultSize );
    item7->Add( item13, 0, wxGROW|wxALIGN_CENTER_HORIZONTAL, 5 );

    item7->AddGrowableCol( 1 );

    item0->Add( item7, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxWindow *item14 = parent->FindWindow( ID_STEDLG_INSERT_EDITOR );
    wxASSERT( item14 );
    item0->Add( item14, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorViewPrefsSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, _("Font scaling") );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxVERTICAL );

    wxBoxSizer *item3 = new wxBoxSizer( wxHORIZONTAL );

    wxStaticText *item4 = new wxStaticText( parent, ID_TEXT, _("Text scaling factor"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item4, 0, wxALIGN_CENTER|wxALL, 5 );

    wxSpinCtrl *item5 = new wxSpinCtrl( parent, ID_STEDLG_ZOOM_SPINCTRL, wxT("0"), wxDefaultPosition, wxSize(60,-1), wxSP_ARROW_KEYS, -10, 20, 0 );
    item5->SetToolTip( _("Scale text point size (not all fonts supported)") );
    item3->Add( item5, 0, wxALIGN_CENTER|wxALL, 5 );

    item1->Add( item3, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );

    wxStaticBox *item7 = new wxStaticBox( parent, -1, _("Edge marker") );
    wxStaticBoxSizer *item6 = new wxStaticBoxSizer( item7, wxVERTICAL );

    wxFlexGridSizer *item8 = new wxFlexGridSizer( 4, 0, 0 );

    wxStaticText *item9 = new wxStaticText( parent, ID_TEXT, _("Type"), wxDefaultPosition, wxDefaultSize, 0 );
    item8->Add( item9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxString strs10[] = 
    {
        _("No marker"), 
        _("Line"), 
        _("Background")
    };
    wxChoice *item10 = new wxChoice( parent, ID_STEDLG_EDGE_MODE_CHOICE, wxDefaultPosition, wxDefaultSize, 3, strs10, 0 );
    item10->SetToolTip( _("Select method to mark an edge") );
    item8->Add( item10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxStaticText *item11 = new wxStaticText( parent, ID_TEXT, _("Column"), wxDefaultPosition, wxDefaultSize, 0 );
    item11->SetToolTip( _("Character to show the edge marker") );
    item8->Add( item11, 0, wxALIGN_CENTER|wxALL, 5 );

    wxSpinCtrl *item12 = new wxSpinCtrl( parent, ID_STEDLG_EDGE_COLUMN_SPINCTRL, wxT("80"), wxDefaultPosition, wxSize(60,-1), wxSP_ARROW_KEYS, 0, 255, 80 );
    item12->SetToolTip( _("Character position of edge marker") );
    item8->Add( item12, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item6->Add( item8, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item0->Add( item6, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );

    wxStaticBox *item14 = new wxStaticBox( parent, -1, _("Margins") );
    wxStaticBoxSizer *item13 = new wxStaticBoxSizer( item14, wxVERTICAL );

    wxCheckBox *item15 = new wxCheckBox( parent, ID_STEDLG_VIEW_LINEMARGIN_CHECKBOX, _("Show line number margin "), wxDefaultPosition, wxDefaultSize, 0 );
    item13->Add( item15, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item16 = new wxCheckBox( parent, ID_STEDLG_VIEW_MARKERMARGIN_CHECKBOX, _("Show marker margin "), wxDefaultPosition, wxDefaultSize, 0 );
    item13->Add( item16, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item0->Add( item13, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );

    wxStaticBox *item18 = new wxStaticBox( parent, -1, _("Cursor") );
    wxStaticBoxSizer *item17 = new wxStaticBoxSizer( item18, wxVERTICAL );

    wxCheckBox *item19 = new wxCheckBox( parent, ID_STEDLG_CARET_LINE_VISIBLE_CHECKBOX, _("Highlight cursor line background "), wxDefaultPosition, wxDefaultSize, 0 );
    item17->Add( item19, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxFlexGridSizer *item20 = new wxFlexGridSizer( 4, 0, 0 );

    wxStaticText *item21 = new wxStaticText( parent, ID_TEXT, _("Width in pixels"), wxDefaultPosition, wxDefaultSize, 0 );
    item20->Add( item21, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxSpinCtrl *item22 = new wxSpinCtrl( parent, ID_STEDLG_CARET_WIDTH_SPINCTRL, wxT("1"), wxDefaultPosition, wxSize(60,-1), wxSP_ARROW_KEYS, 1, 3, 1 );
    item20->Add( item22, 0, wxALIGN_CENTER|wxRIGHT|wxTOP|wxBOTTOM, 5 );

    wxStaticText *item23 = new wxStaticText( parent, ID_TEXT, _("Blink period (ms)"), wxDefaultPosition, wxDefaultSize, 0 );
    item20->Add( item23, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxSpinCtrl *item24 = new wxSpinCtrl( parent, ID_STEDLG_CARET_PERIOD_SPINCTRL, wxT("500"), wxDefaultPosition, wxSize(60,-1), wxSP_ARROW_KEYS, 0, 2000, 500 );
    item24->SetToolTip( _("Set the blinking rate of the cursor in milliseconds (0 for off)") );
    item20->Add( item24, 0, wxALIGN_CENTER|wxRIGHT|wxTOP|wxBOTTOM, 5 );

    item17->Add( item20, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item0->Add( item17, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorPrintPrefsSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, _("Printing options") );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxVERTICAL );

    wxFlexGridSizer *item3 = new wxFlexGridSizer( 2, 0, 0 );

    wxStaticText *item4 = new wxStaticText( parent, ID_TEXT, _("Coloring "), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxString strs5[] = 
    {
        _("Normal colors (WYSIWYG)"), 
        _("Invert light colors"), 
        _("Black on white"), 
        _("Color on white"), 
        _("Color on white (except line nums)")
    };
    wxChoice *item5 = new wxChoice( parent, ID_STEDLG_PRINT_COLOURMODE_CHOICE, wxDefaultPosition, wxDefaultSize, 5, strs5, 0 );
    item5->SetToolTip( _("Choose what colors to use for the printout") );
    item3->Add( item5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxStaticText *item6 = new wxStaticText( parent, ID_TEXT, _("Font scale"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxSpinCtrl *item7 = new wxSpinCtrl( parent, ID_STEDLG_PRINT_MAGNIFICATION_SPINCTRL, wxT("-2"), wxDefaultPosition, wxSize(70,-1), wxSP_ARROW_KEYS, -20, 20, -2 );
    item7->SetToolTip( _("Select the printout scaling (some fonts may not scale properly)") );
    item3->Add( item7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxStaticText *item8 = new wxStaticText( parent, ID_TEXT, _("Wrap lines"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item8, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item9 = new wxCheckBox( parent, ID_STEDLG_PRINT_WRAPMODE_CHECKBOX, wxT(""), wxDefaultPosition, wxDefaultSize, 0 );
    item9->SetToolTip( _("Wrap long lines when printing, else cut them off") );
    item3->Add( item9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxStaticText *item10 = new wxStaticText( parent, ID_TEXT, _("Line numbers"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxString strs11[] = 
    {
        _("As shown in editor"), 
        _("Never"), 
        _("Always")
    };
    wxChoice *item11 = new wxChoice( parent, ID_STEDLG_PRINT_LINENUMBERS_CHOICE, wxDefaultPosition, wxDefaultSize, 3, strs11, 0 );
    item3->Add( item11, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item1->Add( item3, 0, wxALIGN_CENTER_VERTICAL, 5 );

    item0->Add( item1, 0, wxGROW|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorTabsPrefsSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, _("Tabs") );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxVERTICAL );

    wxBoxSizer *item3 = new wxBoxSizer( wxHORIZONTAL );

    wxCheckBox *item4 = new wxCheckBox( parent, ID_STEDLG_USE_TABS_CHECKBOX, _("Tab key inserts tabs not spaces,"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item4, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxStaticText *item5 = new wxStaticText( parent, ID_TEXT, _("Tab width"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->Add( item5, 0, wxALIGN_CENTER|wxRIGHT|wxTOP|wxBOTTOM, 5 );

    wxSpinCtrl *item6 = new wxSpinCtrl( parent, ID_STEDLG_TAB_WIDTH_SPINCTRL, wxT("4"), wxDefaultPosition, wxSize(60,-1), wxSP_ARROW_KEYS, 0, 32, 4 );
    item6->SetToolTip( _("Number of spaces to use for a tab character") );
    item3->Add( item6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item1->Add( item3, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP, 5 );

    wxStaticBox *item8 = new wxStaticBox( parent, -1, _("Indentation") );
    wxStaticBoxSizer *item7 = new wxStaticBoxSizer( item8, wxVERTICAL );

    wxBoxSizer *item9 = new wxBoxSizer( wxHORIZONTAL );

    wxCheckBox *item10 = new wxCheckBox( parent, ID_STEDLG_TAB_INDENTS_CHECKBOX, _("Tab key indents, "), wxDefaultPosition, wxDefaultSize, 0 );
    item9->Add( item10, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxStaticText *item11 = new wxStaticText( parent, ID_TEXT, _("Indent width"), wxDefaultPosition, wxDefaultSize, 0 );
    item9->Add( item11, 0, wxALIGN_CENTER|wxRIGHT|wxTOP|wxBOTTOM, 5 );

    wxSpinCtrl *item12 = new wxSpinCtrl( parent, ID_STEDLG_INDENT_WIDTH_SPINCTRL, wxT("4"), wxDefaultPosition, wxSize(60,-1), wxSP_ARROW_KEYS, 0, 32, 4 );
    item12->SetToolTip( _("Number of spaces to use for indentation") );
    item9->Add( item12, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item7->Add( item9, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxCheckBox *item13 = new wxCheckBox( parent, ID_STEDLG_BACKSPACE_UNINDENTS_CHECKBOX, _("Backspace key unindents "), wxDefaultPosition, wxDefaultSize, 0 );
    item7->Add( item13, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item14 = new wxCheckBox( parent, ID_STEDLG_AUTOINDENT_CHECKBOX, _("Auto indent new lines"), wxDefaultPosition, wxDefaultSize, 0 );
    item7->Add( item14, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item15 = new wxCheckBox( parent, ID_STEDLG_INDENT_GUIDES_CHECKBOX, _("Show indentation guides "), wxDefaultPosition, wxDefaultSize, 0 );
    item7->Add( item15, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item0->Add( item7, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );

    wxStaticBox *item17 = new wxStaticBox( parent, -1, _("End of line mode") );
    wxStaticBoxSizer *item16 = new wxStaticBoxSizer( item17, wxVERTICAL );

    wxStaticText *item18 = new wxStaticText( parent, ID_TEXT, _("End of line characters: CR=carriage return, LF=line feed "), wxDefaultPosition, wxDefaultSize, 0 );
    item16->Add( item18, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxBoxSizer *item19 = new wxBoxSizer( wxHORIZONTAL );

    wxStaticText *item20 = new wxStaticText( parent, ID_TEXT, _("Default EOL"), wxDefaultPosition, wxDefaultSize, 0 );
    item19->Add( item20, 0, wxALIGN_CENTER|wxALL, 5 );

    wxString strs21[] = 
    {
        _("CRLF (Dos/Windows)"), 
        _("CR (Mac)"), 
        _("LF (Unix)")
    };
    wxChoice *item21 = new wxChoice( parent, ID_STEDLG_EOL_MODE_CHOICE, wxDefaultPosition, wxDefaultSize, 3, strs21, 0 );
    item19->Add( item21, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item16->Add( item19, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item0->Add( item16, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );

    wxStaticBox *item23 = new wxStaticBox( parent, -1, _("Show invisibles") );
    wxStaticBoxSizer *item22 = new wxStaticBoxSizer( item23, wxHORIZONTAL );

    wxCheckBox *item24 = new wxCheckBox( parent, ID_STEDLG_VIEW_EOL_CHECKBOX, _("Show EOL marker "), wxDefaultPosition, wxDefaultSize, 0 );
    item22->Add( item24, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item25 = new wxCheckBox( parent, ID_STEDLG_VIEW_WHITESPACE_CHECKBOX, _("Show whitespace "), wxDefaultPosition, wxDefaultSize, 0 );
    item22->Add( item25, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item0->Add( item22, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorHighlightingPrefsSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, _("Language highlighting") );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxVERTICAL );

    wxCheckBox *item3 = new wxCheckBox( parent, ID_STEDLG_HIGHLIGHT_SYNTAX_CHECKBOX, _("Enable syntax highlighting"), wxDefaultPosition, wxDefaultSize, 0 );
    item1->Add( item3, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item4 = new wxCheckBox( parent, ID_STEDLG_HIGHLIGHT_PREPROC_CHECKBOX, _("Highlight preprocessor code"), wxDefaultPosition, wxDefaultSize, 0 );
    item4->SetToolTip( _("Only for languages that support preprocessor statements") );
    item1->Add( item4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item5 = new wxCheckBox( parent, ID_STEDLG_HIGHLIGHT_BRACES_CHECKBOX, _("Highlight braces () {} []"), wxDefaultPosition, wxDefaultSize, 0 );
    item1->Add( item5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item6 = new wxCheckBox( parent, ID_STEDLG_LOAD_INIT_LANG_CHECKBOX, _("Set language highlighting from file extension"), wxDefaultPosition, wxDefaultSize, 0 );
    item6->SetToolTip( _("Initialize the highlighting language when loading a file") );
    item1->Add( item6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorFoldPrefsSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, _("Code folding") );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxVERTICAL );

    wxCheckBox *item3 = new wxCheckBox( parent, ID_STEDLG_VIEW_FOLDMARGIN_CHECKBOX, _("Show code folding margin "), wxDefaultPosition, wxDefaultSize, 0 );
    item3->SetToolTip( _("Show a margin to fold text (not all lexers are supported)") );
    item1->Add( item3, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxString strs4[] = 
    {
        _("Compact folding"), 
        _("Comment folding"), 
        _("Preprocessor folding"), 
        _("At \"else\" folding"), 
        _("HTML folding"), 
        _("HTML preprocessor folding      "), 
        _("Directive folding"), 
        _("Python comment folding"), 
        _("Python quote folding"), 
        _("Python indent fold check")
    };
    wxCheckListBox *item4 = new wxCheckListBox( parent, ID_STEDLG_FOLD_STYLES_LISTBOX, wxDefaultPosition, wxSize(-1,100), 10, strs4, wxLB_SINGLE );
    item1->Add( item4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxBoxSizer *item5 = new wxBoxSizer( wxHORIZONTAL );

    wxStaticText *item6 = new wxStaticText( parent, ID_TEXT, _("Fold margin style"), wxDefaultPosition, wxDefaultSize, 0 );
    item5->Add( item6, 0, wxALIGN_CENTER|wxALL, 5 );

    wxString strs7[] = 
    {
        _("Arrows"), 
        _("Circles"), 
        _("Squares"), 
        _("Plus minus")
    };
    wxChoice *item7 = new wxChoice( parent, ID_STEDLG_FOLDMARGIN_STYLE_CHOICE, wxDefaultPosition, wxDefaultSize, 4, strs7, 0 );
    item5->Add( item7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item1->Add( item5, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP, 5 );

    wxStaticBox *item9 = new wxStaticBox( parent, -1, _("Text wrapping") );
    wxStaticBoxSizer *item8 = new wxStaticBoxSizer( item9, wxVERTICAL );

    wxCheckBox *item10 = new wxCheckBox( parent, ID_STEDLG_WRAP_MODE_CHECKBOX, _("Wrap text to window"), wxDefaultPosition, wxDefaultSize, 0 );
    item10->SetToolTip( _("Wrap text to fit in window (doesn't modify document)") );
    item8->Add( item10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxFlexGridSizer *item11 = new wxFlexGridSizer( 2, 0, 0 );

    wxStaticText *item12 = new wxStaticText( parent, ID_TEXT, _("Marker position"), wxDefaultPosition, wxDefaultSize, 0 );
    item11->Add( item12, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxString strs13[] = 
    {
        _("No wrap markers"), 
        _("At end of line"), 
        _("At start of line"), 
        _("At end and start of line")
    };
    wxChoice *item13 = new wxChoice( parent, ID_STEDLG_WRAP_VISUALFLAGS_CHOICE, wxDefaultPosition, wxDefaultSize, 4, strs13, 0 );
    item11->Add( item13, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxStaticText *item14 = new wxStaticText( parent, ID_TEXT, _("Marker style"), wxDefaultPosition, wxDefaultSize, 0 );
    item11->Add( item14, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    wxString strs15[] = 
    {
        _("At edge of window"), 
        _("At end of text"), 
        _("At start of text"), 
        _("At end and start of text")
    };
    wxChoice *item15 = new wxChoice( parent, ID_STEDLG_WRAP_VISUALFLAGSLOC_CHOICE, wxDefaultPosition, wxDefaultSize, 4, strs15, 0 );
    item11->Add( item15, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    wxStaticText *item16 = new wxStaticText( parent, ID_TEXT, _("Indent wrapped"), wxDefaultPosition, wxDefaultSize, 0 );
    item11->Add( item16, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    wxSpinCtrl *item17 = new wxSpinCtrl( parent, ID_STEDLG_WRAP_STARTINDENT_SPINCTRL, wxT("0"), wxDefaultPosition, wxSize(60,-1), wxSP_ARROW_KEYS, 0, 100, 0 );
    item17->SetToolTip( _("Number of characters to indent wrapped lines") );
    item11->Add( item17, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    item8->Add( item11, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item0->Add( item8, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorWindowsSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, _("Select Window(s)") );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxHORIZONTAL );

    wxFlexGridSizer *item3 = new wxFlexGridSizer( 2, 0, 0 );

    wxString strs4[] = 
    {
        _("ListItem1"), 
        _("Item2"), 
        _("Item3")
    };
    wxListBox *item4 = new wxListBox( parent, ID_STEDLG_WINDOWS_LISTBOX, wxDefaultPosition, wxSize(400,400), 3, strs4, wxLB_EXTENDED );
    item3->Add( item4, 1, wxGROW|wxALL, 5 );

    wxFlexGridSizer *item5 = new wxFlexGridSizer( 1, 0, 0 );

    wxButton *item6 = new wxButton( parent, ID_STEDLGS_WINDOWS_ACTIVATE_BUTTON, _("&Activate"), wxDefaultPosition, wxDefaultSize, 0 );
    item6->SetDefault();
    item5->Add( item6, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxButton *item7 = new wxButton( parent, ID_STEDLGS_WINDOWS_SAVE_BUTTON, _("&Save"), wxDefaultPosition, wxDefaultSize, 0 );
    item5->Add( item7, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxButton *item8 = new wxButton( parent, ID_STEDLGS_WINDOWS_CLOSE_BUTTON, _("&Close Window(s)"), wxDefaultPosition, wxDefaultSize, 0 );
    item5->Add( item8, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item5->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );

    wxButton *item9 = new wxButton( parent, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
    item5->Add( item9, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item5->AddGrowableRow( 3 );

    item3->Add( item5, 0, wxGROW|wxALIGN_CENTER_HORIZONTAL|wxALL, 0 );

    item3->AddGrowableCol( 0 );

    item3->AddGrowableRow( 0 );

    item1->Add( item3, 1, wxGROW|wxALIGN_CENTER_HORIZONTAL, 0 );

    item0->Add( item1, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorColumnizeSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxFlexGridSizer *item1 = new wxFlexGridSizer( 3, 0, 0 );

    wxStaticText *item2 = new wxStaticText( parent, ID_TEXT, _("Split before chars"), wxDefaultPosition, wxDefaultSize, 0 );
    item2->SetToolTip( _("Characters to split text into columns before") );
    item1->Add( item2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxString strs3[] = 
    {
        _("ComboItem"), 
        _("Item1"), 
        _("Item2"), 
        _("Item3"), 
        _("Item4"), 
        _("Item5"), 
        _("Item6"), 
        _("Item7"), 
        _("Item8"), 
        _("Item9"), 
        _("Item0")
    };
    wxComboBox *item3 = new wxComboBox( parent, ID_STEDLG_COLUMNIZE_BEFORE_COMBO, wxT(""), wxDefaultPosition, wxSize(100,-1), 11, strs3, wxCB_DROPDOWN );
    item3->SetToolTip( _("Characters to split before, ex. '){}'") );
    item1->Add( item3, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxButton *item4 = new wxButton( parent, ID_STEDLG_COLUMNIZE_FORMAT_BUTTON, _("Format"), wxDefaultPosition, wxDefaultSize, 0 );
    item4->SetToolTip( _("Format the preview text using current configuration") );
    item1->Add( item4, 0, wxALIGN_CENTER|wxALL, 5 );

    wxStaticText *item5 = new wxStaticText( parent, ID_TEXT, _("Split after chars"), wxDefaultPosition, wxDefaultSize, 0 );
    item5->SetToolTip( _("Characters to split text into columns after") );
    item1->Add( item5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxString strs6[] = 
    {
        _("ComboItem"), 
        _("Item1"), 
        _("Item2"), 
        _("Item3"), 
        _("Item4"), 
        _("Item5"), 
        _("Item6"), 
        _("Item7"), 
        _("Item8"), 
        _("Item9"), 
        _("Item0")
    };
    wxComboBox *item6 = new wxComboBox( parent, ID_STEDLG_COLUMNIZE_AFTER_COMBO, wxT(""), wxDefaultPosition, wxSize(100,-1), 11, strs6, wxCB_DROPDOWN );
    item6->SetToolTip( _("Characters to split after, ex. '(,;'") );
    item1->Add( item6, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxButton *item7 = new wxButton( parent, ID_STEDLG_COLUMNIZE_ORIGINAL_BUTTON, _("Original"), wxDefaultPosition, wxDefaultSize, 0 );
    item7->SetToolTip( _("Show original text's formatting") );
    item1->Add( item7, 0, wxALIGN_CENTER|wxALL, 5 );

    wxStaticText *item8 = new wxStaticText( parent, ID_TEXT, _("Preserve matching"), wxDefaultPosition, wxDefaultSize, 0 );
    item8->SetToolTip( _("Preserve formatting between matching characters, double first character (() to preserve between two different characters") );
    item1->Add( item8, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxString strs9[] = 
    {
        _("ComboItem"), 
        _("Item1"), 
        _("Item2"), 
        _("Item3"), 
        _("Item4"), 
        _("Item5"), 
        _("Item6"), 
        _("Item7"), 
        _("Item8"), 
        _("Item9"), 
        _("Item0")
    };
    wxComboBox *item9 = new wxComboBox( parent, ID_STEDLG_COLUMNIZE_PRESERVE_COMBO, wxT(""), wxDefaultPosition, wxSize(100,-1), 11, strs9, wxCB_DROPDOWN );
    item9->SetToolTip( _("Character pairs to preserve formatting between, ex. '\"\" ()'") );
    item1->Add( item9, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item10 = new wxCheckBox( parent, ID_STEDLG_COLUMNIZE_CHECKBOX, _("Update"), wxDefaultPosition, wxDefaultSize, 0 );
    item10->SetValue( TRUE );
    item10->SetToolTip( _("Automatically update the preview text") );
    item1->Add( item10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxStaticText *item11 = new wxStaticText( parent, ID_TEXT, _("Ignore after"), wxDefaultPosition, wxDefaultSize, 0 );
    item1->Add( item11, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxString strs12[] = 
    {
        _("ComboItem")
    };
    wxComboBox *item12 = new wxComboBox( parent, ID_STEDLG_COLUMNIZE_IGNORE_COMBO, wxT(""), wxDefaultPosition, wxSize(100,-1), 1, strs12, wxCB_DROPDOWN );
    item1->Add( item12, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item1->AddGrowableCol( 1 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxWindow *item13 = parent->FindWindow( ID_STEDLG_COLUMNIZE_EDITOR );
    wxASSERT( item13 );
    item0->Add( item13, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxStaticLine *item14 = new wxStaticLine( parent, ID_LINE, wxDefaultPosition, wxSize(20,-1), wxLI_HORIZONTAL );
    item0->Add( item14, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxBoxSizer *item15 = new wxBoxSizer( wxHORIZONTAL );

    wxButton *item16 = new wxButton( parent, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
    item16->SetDefault();
    item15->Add( item16, 0, wxALIGN_CENTER|wxALL, 5 );

    wxButton *item17 = new wxButton( parent, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
    item15->Add( item17, 0, wxALIGN_CENTER|wxALL, 5 );

    item0->Add( item15, 0, wxALIGN_CENTER, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorExportSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxFlexGridSizer *item1 = new wxFlexGridSizer( 3, 5, 5 );

    wxStaticText *item2 = new wxStaticText( parent, wxID_ANY, _("File format"), wxDefaultPosition, wxDefaultSize, 0 );
    item1->Add( item2, 0, wxALIGN_CENTER_VERTICAL, 5 );

    wxString strs3[] = 
    {
        _("HTML - Hypertext"), 
        _("HTML - Hypertext (w/ CSS)"), 
        _("PDF - Portable Document Format"), 
        _("RTF - Rich Text Format"), 
        _("TEX - Latex"), 
        _("XML - Extensible Markup Language")
    };
    wxChoice *item3 = new wxChoice( parent, ID_STEDLG_EXPORT_FORMAT_CHOICE, wxDefaultPosition, wxDefaultSize, 6, strs3, 0 );
    item1->Add( item3, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item1->Add( 20, 20, 0, wxALIGN_CENTER, 0 );

    wxStaticText *item4 = new wxStaticText( parent, wxID_ANY, _("File name"), wxDefaultPosition, wxDefaultSize, 0 );
    item1->Add( item4, 0, wxALIGN_CENTER_VERTICAL, 5 );

    wxString strs5[] = 
    {
        _("This Is a Long Filename to size the dialog"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item")
    };
    wxComboBox *item5 = new wxComboBox( parent, ID_STEDLG_EXPORT_FILENAME_COMBO, wxT(""), wxDefaultPosition, wxDefaultSize, 6, strs5, wxCB_DROPDOWN );
    item1->Add( item5, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxBitmapButton *item6 = new wxBitmapButton( parent, ID_STEDLG_EXPORT_FILENAME_BITMAPBUTTON, wxSTEBitmapsFunc( 0 ), wxDefaultPosition, wxDefaultSize );
    item6->SetToolTip( _("Choose file") );
    item1->Add( item6, 0, wxALIGN_CENTER, 5 );

    item1->Add( 10, 10, 0, wxALIGN_CENTER, 5 );

    wxCheckBox *item7 = new wxCheckBox( parent, ID_STEDLG_EXPORT_EXTENSION_CHECKBOX, _("Automatic file name extension"), wxDefaultPosition, wxDefaultSize, 0 );
    item7->SetValue( TRUE );
    item1->Add( item7, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item1->Add( 20, 20, 0, wxALIGN_CENTER, 0 );

    item1->AddGrowableCol( 1 );

    item0->Add( item1, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorLangKeywordSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxFlexGridSizer *item1 = new wxFlexGridSizer( 2, 0, 0 );

    wxStaticText *item2 = new wxStaticText( parent, ID_TEXT, _("Choose keyword list"), wxDefaultPosition, wxDefaultSize, 0 );
    item1->Add( item2, 0, wxALIGN_CENTER|wxALL, 5 );

    wxString strs3[] = 
    {
        _("ChoiceItem"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item")
    };
    wxChoice *item3 = new wxChoice( parent, ID_STEDLG_LANG_KEYWORD_CHOICE, wxDefaultPosition, wxSize(100,-1), 8, strs3, 0 );
    item1->Add( item3, 0, wxALIGN_CENTER|wxALL, 5 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxStaticLine *item4 = new wxStaticLine( parent, ID_LINE, wxDefaultPosition, wxSize(20,-1), wxLI_HORIZONTAL );
    item0->Add( item4, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );

    wxFlexGridSizer *item5 = new wxFlexGridSizer( 2, 0, 0 );

    wxStaticText *item6 = new wxStaticText( parent, ID_TEXT, _("Default keywords"), wxDefaultPosition, wxDefaultSize, 0 );
    item5->Add( item6, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP, 5 );

    wxStaticText *item7 = new wxStaticText( parent, ID_TEXT, _("Additional keywords"), wxDefaultPosition, wxDefaultSize, 0 );
    item5->Add( item7, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP, 5 );

    wxTextCtrl *item8 = new wxTextCtrl( parent, ID_STEDLG_LANG_KEYWORD_TEXTCTRL, wxT(""), wxDefaultPosition, wxSize(80,40), wxTE_MULTILINE|wxTE_READONLY );
    item5->Add( item8, 0, wxGROW|wxALL, 5 );

    wxTextCtrl *item9 = new wxTextCtrl( parent, ID_STEDLG_LANG_USERKEYWORD_TEXTCTRL, wxT(""), wxDefaultPosition, wxSize(80,40), wxTE_MULTILINE );
    item5->Add( item9, 0, wxGROW|wxALL, 5 );

    item5->AddGrowableCol( 0 );

    item5->AddGrowableCol( 1 );

    item5->AddGrowableRow( 1 );

    item0->Add( item5, 1, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorLangStyleSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxFlexGridSizer *item1 = new wxFlexGridSizer( 2, 0, 0 );

    wxStaticText *item2 = new wxStaticText( parent, ID_TEXT, _("Choose style"), wxDefaultPosition, wxDefaultSize, 0 );
    item1->Add( item2, 0, wxALIGN_CENTER|wxALL, 5 );

    wxString strs3[] = 
    {
        _("ChoiceItem"), 
        _("REGULAR EXPRESSION BLAH"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item"), 
        _("Item")
    };
    wxChoice *item3 = new wxChoice( parent, ID_STEDLG_LANG_STYLE_CHOICE, wxDefaultPosition, wxDefaultSize, 12, strs3, 0 );
    item1->Add( item3, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item1->AddGrowableCol( 1 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    wxWindow *item4 = parent->FindWindow( ID_STEDLG_LANG_STYLE_EDITOR );
    wxASSERT( item4 );
    item0->Add( item4, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorLoadSavePrefsSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, _("Loading files") );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxVERTICAL );

    wxCheckBox *item3 = new wxCheckBox( parent, ID_STEDLG_LOAD_INIT_LANG_CHECKBOX, _("Set language highlighting from file extension"), wxDefaultPosition, wxDefaultSize, 0 );
    item3->SetToolTip( _("Initialize the highlighting language when loading a file") );
    item1->Add( item3, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxBoxSizer *item4 = new wxBoxSizer( wxHORIZONTAL );

    wxStaticText *item5 = new wxStaticText( parent, ID_TEXT, _("Load Unicode"), wxDefaultPosition, wxDefaultSize, 0 );
    item4->Add( item5, 0, wxALIGN_CENTER|wxALL, 5 );

    wxString strs6[] = 
    {
        _("Default"), 
        _("Ask if unicode"), 
        _("ASCII always"), 
        _("Unicode always")
    };
    wxChoice *item6 = new wxChoice( parent, ID_STEDLG_LOAD_UNICODE_CHOICE, wxDefaultPosition, wxDefaultSize, 4, strs6, 0 );
    item4->Add( item6, 0, wxALIGN_CENTER|wxALL, 5 );

    item1->Add( item4, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxStaticBox *item8 = new wxStaticBox( parent, -1, _("Saving files") );
    wxStaticBoxSizer *item7 = new wxStaticBoxSizer( item8, wxVERTICAL );

    wxCheckBox *item9 = new wxCheckBox( parent, ID_STEDLG_SAVE_WHITESPACE_CHECKBOX, _("Remove trailing whitepace"), wxDefaultPosition, wxDefaultSize, 0 );
    item7->Add( item9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item10 = new wxCheckBox( parent, ID_STEDLG_SAVE_LINEENDINGS_CHECKBOX, _("Convert all EOL characters"), wxDefaultPosition, wxDefaultSize, 0 );
    item10->SetToolTip( _("Convert all the end of line characters to the set value") );
    item7->Add( item10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item0->Add( item7, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorFileOpenSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, _("Encoding") );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxHORIZONTAL );

    wxString *strs3 = (wxString*) NULL;
    wxChoice *item3 = new wxChoice( parent, ID_STEFILEOPEN_ENCODING_CHOICE, wxDefaultPosition, wxDefaultSize, 0, strs3, 0 );
    item1->Add( item3, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxCheckBox *item4 = new wxCheckBox( parent, ID_STEFILEOPEN_ENCODING_BOM_CHECKBOX, _("BOM"), wxDefaultPosition, wxDefaultSize, 0 );
    item1->Add( item4, 0, wxALIGN_CENTER|wxALL, 5 );

    item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}

wxSizer *wxSTEditorBookmarkSizer( wxWindow *parent, bool call_fit, bool set_sizer ) {
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, _("Select Bookmark") );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxHORIZONTAL );

    wxFlexGridSizer *item3 = new wxFlexGridSizer( 2, 0, 0 );

    wxTreeCtrl *item4 = new wxTreeCtrl( parent, ID_STEDLGS_BOOKMARKS_TREECTRL, wxDefaultPosition, wxSize(400,400), wxTR_MULTIPLE|wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT|wxSUNKEN_BORDER|wxTR_HIDE_ROOT );
    item3->Add( item4, 1, wxGROW|wxALL, 5 );

    wxFlexGridSizer *item5 = new wxFlexGridSizer( 1, 0, 0 );

    wxButton *item6 = new wxButton( parent, ID_STEDLGS_BOOKMARKS_GOTO_BUTTON, _("&Goto"), wxDefaultPosition, wxDefaultSize, 0 );
    item5->Add( item6, 0, wxALIGN_CENTER|wxALL, 5 );

    wxButton *item7 = new wxButton( parent, ID_STEDLGS_BOOKMARKS_DELETE_BUTTON, _("&Delete"), wxDefaultPosition, wxDefaultSize, 0 );
    item5->Add( item7, 0, wxALIGN_CENTER|wxALL, 5 );

    item5->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );

    wxButton *item8 = new wxButton( parent, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
    item5->Add( item8, 0, wxALIGN_CENTER|wxALL, 5 );

    item5->AddGrowableRow( 2 );

    item3->Add( item5, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );

    item3->AddGrowableCol( 0 );

    item3->AddGrowableRow( 0 );

    item1->Add( item3, 1, wxGROW|wxALIGN_CENTER_HORIZONTAL, 5 );

    item0->Add( item1, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}




wxBitmap wxSTEBitmapsFunc( size_t index ) {
    if (index == (size_t)0)
    {
        
        static const char *xpm_data[] = {
        
        "15 15 15 1",
        "  c None",
        "a c Black",
        "b c #FCFF00",
        "c c #6E6F00",
        "d c #3D3D3D",
        "e c #6A6A6A",
        "f c #323300",
        "g c #111100",
        "h c #CED000",
        "i c #434400",
        "j c #1A1A1A",
        "k c #4F4F4F",
        "l c #8B8B8B",
        "m c #949600",
        "n c #9B9B9B",
        "               ",
        "      neee     ",
        "    ldfcccge   ",
        "    ghbbbbhg   ",
        "   kmbbhhbbmk  ",
        "   abbbaibbmd  ",
        "   kifafhbbil  ",
        "      jhbbck   ",
        "      abbmk    ",
        "      kifdl    ",
        "      gmhmd    ",
        "      abbhj    ",
        "      abbba    ",
        "      kfgak    ",
        "               "
        };
        wxBitmap bitmap( xpm_data );
        return bitmap;
    }
    if (index == (size_t)1)
    {
        static const char *xpm_data[] = {
        "5 9 2 1",
        "  c None",
        "a c Black",
        "a    ",
        "aa   ",
        "aaa  ",
        "aaaa ",
        "aaaaa",
        "aaaa ",
        "aaa  ",
        "aa   ",
        "a    "
        };
        wxBitmap bitmap( xpm_data );
        return bitmap;
    }
    return wxNullBitmap;
}
